1876B - Effects of Anti Pimples - CodeForces Solution


combinatorics number theory sortings

Please click on ads to support us..

C++ Code:

#include <bits/stdc++.h>
using namespace std;
#define int long long
const int N = 1e5+37;
int mod = 998244353;

signed main(){
    ios_base::sync_with_stdio(false);
    cin.tie(0); 

    int n; cin >> n;

    vector<int> a(n);
    vector<int> b((int)1e5+37, 0);

    for(auto &i: a) cin >> i;

    for(int i=0; i<n; i++){
        int ma = a[i];
        for(int l=i; l<n; l+=(i+1)){
            ma=max(ma, a[l]);
        }

        b[ma]++;
    }
    vector<int> p(n+5);
    p[0]=1;

    for(int i=1; i<n+5; i++){
        p[i] = p[i-1]*2;
        p[i] %= mod;
    }

    int el=1, ans = 0;
    for(int i=0; i<1e5+37; i++){
        if(i!=0)
        b[i]+=b[i-1];   

        b[i]%=mod;

        int val = p[b[i]]-((i==0)?0:p[b[i-1]]);
        val %= mod; val+= mod; val%=mod;

        ans+=(val*i)%mod;
        ans %= mod;

      //  cout << val << "\n";
    }

    cout << ans;

}


Comments

Submit
0 Comments
More Questions

1676D - X-Sum
1679A - AvtoBus
1549A - Gregor and Cryptography
918C - The Monster
4B - Before an Exam
545B - Equidistant String
1244C - The Football Season
1696B - NIT Destroys the Universe
1674A - Number Transformation
1244E - Minimizing Difference
1688A - Cirno's Perfect Bitmasks Classroom
219A - k-String
952A - Quirky Quantifiers
451B - Sort the Array
1505H - L BREAK into program
171E - MYSTERIOUS LANGUAGE
630D - Hexagons
1690D - Black and White Stripe
1688D - The Enchanted Forest
1674C - Infinite Replacement
712A - Memory and Crow
1676C - Most Similar Words
1681A - Game with Cards
151C - Win or Freeze
1585A - Life of a Flower
1662A - Organizing SWERC
466C - Number of Ways
1146A - Love "A"
1618D - Array and Operations
1255A - Changing Volume